From 20b56689c5688a53abfba3ea42bfd19a4f93334e Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 12 Dec 2011 17:59:36 +0100 Subject: [PATCH] a11y: Improve table_is_row_selected() --- gtk/a11y/gtktreeviewaccessible.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/gtk/a11y/gtktreeviewaccessible.c b/gtk/a11y/gtktreeviewaccessible.c index 065be9f480..d2eaaa5cc3 100644 --- a/gtk/a11y/gtktreeviewaccessible.c +++ b/gtk/a11y/gtktreeviewaccessible.c @@ -806,22 +806,23 @@ gtk_tree_view_accessible_is_row_selected (AtkTable *table, gint row) { GtkWidget *widget; - GtkTreeView *tree_view; - GtkTreeSelection *selection; - GtkTreeIter iter; + GtkRBTree *tree; + GtkRBNode *node; + + if (row < 0) + return FALSE; widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table)); if (widget == NULL) return FALSE; - if (row < 0) + if (!_gtk_rbtree_find_index (_gtk_tree_view_get_rbtree (GTK_TREE_VIEW (widget)), + row, + &tree, + &node)) return FALSE; - tree_view = GTK_TREE_VIEW (widget); - selection = gtk_tree_view_get_selection (tree_view); - - set_iter_nth_row (tree_view, &iter, row); - return gtk_tree_selection_iter_is_selected (selection, &iter); + return GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED); } static gboolean -- 2.30.2